# 递归特点
# 必须有一个明确的结束条件
#
# 每次进入更深一层递归时，问题规模相比上次递归都应有所减少
#
# 相邻两次重复之间有紧密的联系，前一次要为后一次做准备（通常前一次的输出就作为后一次的输入）
# 递归效率不高，递归层次过多会导致栈溢出
# 递归经典案例-求数字阶乘
# 如：5的阶乘：5*4*3*2*1=120
def calc(n):
    if n==1:
        return 1
    else:
        return n*calc(n-1)
a=int(input("请输入要阶乘的数字："))
s=calc(a)
print(s)
